iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
AI & Data

30Day 從一介凡人羽化成資料科學初學者系列 第 19

Day19-pytorch(2)認識backward、自己設置loss function及updata參數

  • 分享至 

  • xImage
  •  

backward計算微分後的結果
backward可自動算出function微分後的結果
也就是算出斜率,之後我們可根據backward的計算結果來更新參數

以下範例我先設置一個x參數為2
注意:型態要為浮點數且requires_grad參數要設為true才可微分
設置一個function為y=2x²+3x+3,x帶入此function結果為f(2)=17
使用backward計算dy/dx,也就是對x做微分
此function微分後的結果為4x+3,f'(2)=11
11也就是此function在x=2時的斜率
https://ithelp.ithome.com.tw/upload/images/20210904/20140416nDyRnxhKpu.png

自己設置loss function、updata參數
先設一個x為1,把它當作我們在訓練時所輸入的資料
y_hat設為2,把它當作我們的訓練目標
w設為3,為我們要訓練的參數
y_pred為我們的計算結果
loss則是我們的loss function,為y_pred-y_hat(預測結果減掉訓練目標)
loss.backward算出對w的微分結果
https://ithelp.ithome.com.tw/upload/images/20210904/20140416IFS1MnXC8O.png
根據微分的結果,更新w參數,公式為w-(dy/dw),也就是減掉微分後的結果
之後再重新計算一次我們的預測結果,可發現已經與我們的訓練目標一樣
https://ithelp.ithome.com.tw/upload/images/20210904/20140416LIVn0H0Ioc.png

今天我們認識了backward以及如何自己設置loss function、updata參數
明天將帶領大家如何設置model、使用pytorch方法來設置loss function及updata參數

送上colab連結,可自行在上面多做點練習更加熟悉pytorch
https://colab.research.google.com/drive/1mgTZLoGTlAbuqePpu8WGHM0_Mc-2n-l8?usp=sharing


上一篇
Day18-pytorch(1)認識tensor
下一篇
Day20-pytorch(3)設置model、使用pytorch設置loss function及updata參數
系列文
30Day 從一介凡人羽化成資料科學初學者30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言